import matplotlib.pyplot as plt
import numpy as np

# 设置中文字体，确保中文正常显示
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False  # 解决负号显示问题


# 数据
x = np.linspace(-5, 5, 100)  # 0到10之间生成100个点
y1 = np.sin(x)
y2 = np.cos(x)

# 创建画布和子图
fig, ax = plt.subplots(figsize=(10, 6))

# 绘制多条折线
ax.plot(x, y1, label='sin(x)', color='blue', linewidth=2, linestyle='-', marker='o', markersize=3)
ax.plot(x, y2, label='cos(x)', color='red', linewidth=1.5, linestyle='--', marker='x', markersize=3)
# label标签，color颜色，linewidth线条宽度，-(--)线条样式，marker数据点标记样式，markersize标记大小

# 美化
ax.set_title("正弦和余弦曲线", fontsize=15)#fontsize字体大小
ax.set_xlabel("X值", fontsize=12)#fontweight字体粗细
ax.set_ylabel("Y值", fontsize=12)#fontstyle字体样式
ax.set_xticks(np.arange(-5, 6, 1))#x轴间隔
ax.set_yticks(np.arange(-1, 1.5, 0.5))#y轴间隔
ax.legend(fontsize=10)  # 显示图例（需在plot中设置label），控制label，sin(x)和cos(x)的大小
ax.grid(alpha=0.3)  # 网格线（alpha控制透明度）
ax.set_xlim(-5, 5)  # 设置X轴范围
ax.set_ylim(-1.2, 1.2)  # 设置Y轴范围

plt.show()

fig.savefig("折线图.png", dpi=100)  # 保存图表（dpi控制清晰度）




